package com.ruoyi.lab.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.data.annotation.Transient;

/**
 * 设备报废与维修表
 */
@EqualsAndHashCode(callSuper = true)
@ApiModel(description = "设备报废与维修表")
@Data
@TableName(value = "lab_maintenance_scrap")
public class LabMaintenanceScrap extends BaseEntity implements Serializable {
    /**
     * 记录ID，唯一标识符
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    @ApiModelProperty(value = "记录ID，唯一标识符")
    private String id;

    /**
     * 设备ID，关联到设备表
     */
    @TableField(value = "equipment_id")
    @ApiModelProperty(value = "设备ID，关联到设备表")
    private String equipmentId;

    @TableField(exist = false)
    @ApiModelProperty(value = "设备名称")
    private String equipmentName;

    /**
     * 记录类型（'1'：维修，'2'：报废）
     */
    @TableField(value = "record_type")
    @ApiModelProperty(value = "记录类型（'1'：维修，'2'：报废）")
    private String recordType;

    /**
     * 报告日期
     */
    @TableField(value = "report_date")
    @ApiModelProperty(value = "报告日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date reportDate;

    /**
     * 完成日期
     */
    @TableField(value = "completion_date")
    @ApiModelProperty(value = "完成日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date completionDate;

    /**
     * 详细描述
     */
    @TableField(value = "description")
    @ApiModelProperty(value = "详细描述")
    private String description;

    /**
     * 状态（'1'：待处理，'2'：处理中，'3'：已完成）
     */
    @TableField(value = "`status`")
    @ApiModelProperty(value = "状态（'1'：待处理，'2'：处理中，'3'：已完成）")
    private String status;

    /**
     * 维修人员
     */
    @TableField(value = "technician")
    @ApiModelProperty(value = "维修人员")
    private String technician;

    /**
     * 审批人员
     */
    @TableField(value = "approved_by")
    @ApiModelProperty(value = "审批人员")
    private String approvedBy;


    @TableField(exist = false)
    @ApiModelProperty(value = "审批人员名称")
    private String approvedByName;

    /**
     * 删除标志（0代表存在 2代表删除）
     */
    @TableField(value = "del_flag")
    @ApiModelProperty(value = "删除标志（0代表存在 2代表删除）")
    private String delFlag;

    private static final long serialVersionUID = 1L;
}